Fix tests
authorAlex Crichton <alex@alexcrichton.com>
Mon, 5 Jun 2017 14:44:16 +0000 (07:44 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Mon, 5 Jun 2017 14:49:41 +0000 (07:49 -0700)
src/cargo/core/registry.rs
tests/resolve.rs

index 67b256eb999405854f235b370f130a9ee3fbbb9f..25524fbbf3d8860cb5a5682c7f7cae4eff3f0eac 100644 (file)
@@ -441,7 +441,12 @@ pub mod test {
             let overrides = self.query_overrides(dep);
 
             if overrides.is_empty() {
-                self.summaries.query(dep, f)
+                for s in self.summaries.iter() {
+                    if dep.matches(s) {
+                        f(s.clone());
+                    }
+                }
+                Ok(())
             } else {
                 for s in overrides {
                     f(s);
index 47b1e585b2b0da339f4098115be704b58913d763..042eda65dae50f4514509686108ae8c530993a24 100644 (file)
@@ -13,12 +13,26 @@ use cargo::core::{Dependency, PackageId, Summary, Registry};
 use cargo::util::{CargoResult, ToUrl};
 use cargo::core::resolver::{self, Method};
 
-fn resolve<R: Registry>(pkg: PackageId, deps: Vec<Dependency>,
-                        registry: &mut R)
-                        -> CargoResult<Vec<PackageId>> {
+fn resolve(pkg: PackageId, deps: Vec<Dependency>, registry: &[Summary])
+    -> CargoResult<Vec<PackageId>>
+{
+    struct MyRegistry<'a>(&'a [Summary]);
+    impl<'a> Registry for MyRegistry<'a> {
+        fn query(&mut self,
+                 dep: &Dependency,
+                 f: &mut FnMut(Summary)) -> CargoResult<()> {
+            for summary in self.0.iter() {
+                if dep.matches(summary) {
+                    f(summary.clone());
+                }
+            }
+            Ok(())
+        }
+    }
+    let mut registry = MyRegistry(registry);
     let summary = Summary::new(pkg.clone(), deps, HashMap::new()).unwrap();
     let method = Method::Everything;
-    let resolve = resolver::resolve(&[(summary, method)], &[], registry)?;
+    let resolve = resolver::resolve(&[(summary, method)], &[], &mut registry)?;
     let res = resolve.iter().cloned().collect();
     Ok(res)
 }